home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Pascal / Applications / TCPExample / PNL Libraries / MyCallProc.p < prev    next >
Text File  |  1997-04-09  |  9KB  |  302 lines

  1. unit MyCallProc;
  2.  
  3. interface
  4.  
  5.     uses
  6.         Types, MixedMode;
  7.  
  8.     const
  9.         uppPascal0ProcInfo = kPascalStackBased + $10*kNoByteCode;
  10.         uppPascal02ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kTwoByteCode;
  11.         uppPascal04ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode;
  12.         uppPascal022ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kTwoByteCode + $100* kTwoByteCode;
  13.         uppPascal042ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode + $100* kTwoByteCode;    
  14.         uppPascal044ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode + $100* kFourByteCode;
  15.         uppPascal0444ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode + $100* kFourByteCode + $400* kFourByteCode;
  16. {        uppPascal02244ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kTwoByteCode + $100* kTwoByteCode + $400* kFourByteCode + $1000* kFourByteCode;}
  17.         uppPascal04244ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode + $100* kTwoByteCode + $400* kFourByteCode + $1000* kFourByteCode;
  18.         uppPascal14ProcInfo = kPascalStackBased + $10*kOneByteCode + $40* kFourByteCode;
  19.         uppPascal2ProcInfo = kPascalStackBased + $10*kTwoByteCode;
  20.         uppPascal22ProcInfo = kPascalStackBased + $10*kTwoByteCode + $40* kTwoByteCode;
  21.         uppPascal24ProcInfo = kPascalStackBased + $10*kTwoByteCode + $40* kFourByteCode;
  22.         uppPascal4ProcInfo = kPascalStackBased + $10*kFourByteCode;
  23.         uppPascal44ProcInfo = kPascalStackBased + $10*kFourByteCode + $40* kFourByteCode;
  24.         uppC04ProcInfo = kCStackBased + $10*kNoByteCode + $40* kFourByteCode;
  25.         uppC24ProcInfo = kCStackBased + $10*kTwoByteCode + $40* kFourByteCode;
  26.         uppC244ProcInfo = kCStackBased + $10*kTwoByteCode + $40* kFourByteCode + $100* kFourByteCode;
  27.         uppC2444ProcInfo = kCStackBased + $10*kTwoByteCode + $40* kFourByteCode + $100* kFourByteCode + $400* kFourByteCode;
  28.         uppC244444ProcInfo = kCStackBased + $10*kTwoByteCode + $40* kFourByteCode + $100* kFourByteCode + $400* kFourByteCode + $1000* kFourByteCode + $4000* kFourByteCode;        
  29.  
  30.     function NewProc(userRoutine: ProcPtr; upp:longint): UniversalProcPtr;
  31. {$IFC not GENERATINGPOWERPC }
  32.     inline
  33.         $584F,$2E9F;
  34. {$ENDC}
  35.  
  36.     function New68kProc(userRoutine: ProcPtr; upp:longint): UniversalProcPtr;
  37. {$IFC not GENERATINGPOWERPC }
  38.     inline
  39.         $584F,$2E9F;
  40. {$ENDC}
  41.  
  42.     procedure CallPascal0 (proc: UniversalProcPtr);
  43. {$IFC not GENERATINGPOWERPC}
  44.     inline
  45.         $205F, $4E90;
  46. {$ENDC}
  47.  
  48.     procedure CallPascal04 (p1:univ SInt32; proc: UniversalProcPtr);
  49. {$IFC not GENERATINGPOWERPC}
  50.     inline
  51.         $205F, $4E90;
  52. {$ENDC}
  53.  
  54.     procedure CallPascal02 (p1:univ SInt16; proc: UniversalProcPtr);
  55. {$IFC not GENERATINGPOWERPC}
  56.     inline
  57.         $205F, $4E90;
  58. {$ENDC}
  59.  
  60.     procedure CallPascal022 (p1:univ SInt16; p2: univ SInt16; proc: UniversalProcPtr);
  61. {$IFC not GENERATINGPOWERPC}
  62.     inline
  63.         $205F, $4E90;
  64. {$ENDC}
  65.  
  66.     procedure CallPascal042 (p1:univ SInt32; p2: univ SInt16; proc: UniversalProcPtr);
  67. {$IFC not GENERATINGPOWERPC}
  68.     inline
  69.         $205F, $4E90;
  70. {$ENDC}
  71.  
  72.     procedure CallPascal044 (p1:univ SInt32; p2: univ SInt32; proc: UniversalProcPtr);
  73. {$IFC not GENERATINGPOWERPC}
  74.     inline
  75.         $205F, $4E90;
  76. {$ENDC}
  77.  
  78.     procedure CallPascal0444 (p1:univ SInt32; p2:univ SInt32; p3:univ SInt32; proc: UniversalProcPtr);
  79. {$IFC not GENERATINGPOWERPC}
  80.     inline
  81.         $205F, $4E90;
  82. {$ENDC}
  83. (*
  84.     procedure CallPascal02244 (p1:univ SInt16; p2: univ SInt16; p3:univ SInt32; p4:univ SInt32;  proc: UniversalProcPtr);
  85. {$IFC not GENERATINGPOWERPC}
  86.     inline
  87.         $205F, $4E90;
  88. {$ENDC}
  89. *)
  90.     procedure CallPascal04244 (p1:univ SInt32; p2: univ SInt16; p3:univ SInt32; p4:univ SInt32;  proc: UniversalProcPtr);
  91. {$IFC not GENERATINGPOWERPC}
  92.     inline
  93.         $205F, $4E90;
  94. {$ENDC}
  95.  
  96.     function CallPascal14 (p1:univ SInt32; proc: UniversalProcPtr): SInt8;
  97. {$IFC not GENERATINGPOWERPC}
  98.     inline
  99.         $205F, $4E90;
  100. {$ENDC}
  101.  
  102.     function CallPascalB4 (p1:univ SInt32; proc: UniversalProcPtr): Boolean;
  103. {$IFC not GENERATINGPOWERPC}
  104.     inline
  105.         $205F, $4E90;
  106. {$ENDC}
  107.  
  108.     function CallPascal2(proc: UniversalProcPtr):SInt16;
  109. {$IFC not GENERATINGPOWERPC}
  110.     inline
  111.         $205F, $4E90;
  112. {$ENDC}
  113.  
  114.     function CallPascal22(p1:univ SInt16; proc: UniversalProcPtr):SInt16;
  115. {$IFC not GENERATINGPOWERPC}
  116.     inline
  117.         $205F, $4E90;
  118. {$ENDC}
  119.  
  120.     function CallPascal24(p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  121. {$IFC not GENERATINGPOWERPC}
  122.     inline
  123.         $205F, $4E90;
  124. {$ENDC}
  125.  
  126.     function CallPascal44(p1:univ SInt32; proc: UniversalProcPtr):SInt32;
  127. {$IFC not GENERATINGPOWERPC}
  128.     inline
  129.         $205F, $4E90;
  130. {$ENDC}
  131.  
  132.     procedure CallC04(p1:univ SInt32; proc: UniversalProcPtr);
  133. {$IFC not GENERATINGPOWERPC}
  134.     inline
  135.         $205F, $4E90,$584F;
  136. {$ENDC}
  137.  
  138.     function CallC24(p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  139. {$IFC not GENERATINGPOWERPC}
  140.     inline
  141.         $205F, $4E90,$584F,$3E80;
  142. {$ENDC}
  143.  
  144.     function CallC244(p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  145. {$IFC not GENERATINGPOWERPC}
  146.     inline
  147.         $205F, $4E90,$504F,$3E80;
  148. {$ENDC}
  149.  
  150.     function CallC2444(p3,p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  151. {$IFC not GENERATINGPOWERPC}
  152.     inline
  153.         $205F, $4E90,$DEFC,$000C,$3E80;
  154. {$ENDC}
  155.  
  156.     function CallC244444(p5,p4,p3,p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  157. {$IFC not GENERATINGPOWERPC}
  158.     inline
  159.         $205F, $4E90,$DEFC,$0014,$3E80;
  160. {$ENDC}
  161.  
  162. implementation
  163.  
  164. {$IFC GENERATINGPOWERPC}
  165.  
  166.     function NewProc(userRoutine: ProcPtr; upp:longint): UniversalProcPtr;
  167.     begin
  168.         NewProc:=NewRoutineDescriptor(userRoutine,upp,GetCurrentISA);
  169.     end;
  170.  
  171.     function New68kProc(userRoutine: ProcPtr; upp:longint): UniversalProcPtr;
  172.     begin
  173.         New68kProc:=NewRoutineDescriptor(userRoutine,upp,kM68kISA);
  174.     end;
  175.  
  176.     procedure CallPascal0 (proc: UniversalProcPtr);
  177.         var
  178.             junk_long:longint;
  179.     begin
  180.         junk_long:= CallUniversalProc(proc, uppPascal0ProcInfo);
  181.     end;
  182.  
  183.     procedure CallPascal04 (p1:univ SInt32; proc: UniversalProcPtr);
  184.         var
  185.             junk_long:longint;
  186.     begin
  187.         junk_long:= CallUniversalProc(proc, uppPascal04ProcInfo, p1);
  188.     end;
  189.  
  190.     procedure CallPascal02 (p1:univ SInt16; proc: UniversalProcPtr);
  191.         var
  192.             junk_long:longint;
  193.     begin
  194.         junk_long:= CallUniversalProc(proc, uppPascal02ProcInfo, p1);
  195.     end;
  196.  
  197.     procedure CallPascal022 (p1:univ SInt16; p2: univ SInt16; proc: UniversalProcPtr);
  198.         var
  199.             junk_long:longint;
  200.     begin
  201.         junk_long:= CallUniversalProc(proc, uppPascal022ProcInfo, p1,p2);
  202.     end;
  203.  
  204.     procedure CallPascal042 (p1:univ SInt32; p2: univ SInt16; proc: UniversalProcPtr);
  205.         var
  206.             junk_long:longint;
  207.     begin
  208.         junk_long:= CallUniversalProc(proc, uppPascal042ProcInfo, p1,p2);
  209.     end;
  210.  
  211.     procedure CallPascal044 (p1:univ SInt32; p2: univ SInt32; proc: UniversalProcPtr);
  212.         var
  213.             junk_long:longint;
  214.     begin
  215.         junk_long:= CallUniversalProc(proc, uppPascal044ProcInfo, p1,p2);
  216.     end;
  217.  
  218.     procedure CallPascal0444 (p1:univ SInt32; p2:univ SInt32; p3:univ SInt32; proc: UniversalProcPtr);
  219.         var
  220.             junk_long:longint;
  221.     begin
  222.         junk_long:= CallUniversalProc(proc, uppPascal0444ProcInfo, p1,p2,p3);
  223.     end;
  224. {
  225.     procedure CallPascal02244 (p1:univ SInt16; p2: univ SInt16; p3:univ SInt32; p4:univ SInt32;  proc: UniversalProcPtr);
  226.         var
  227.             junk_long:longint;
  228.     begin
  229.         junk_long:= CallUniversalProc(proc, uppPascal02244ProcInfo, p1,p2,p3,p4);
  230.     end;
  231. }
  232.     procedure CallPascal04244 (p1:univ SInt32; p2: univ SInt16; p3:univ SInt32; p4:univ SInt32;  proc: UniversalProcPtr);
  233.         var
  234.             junk_long:longint;
  235.     begin
  236.         junk_long:= CallUniversalProc(proc, uppPascal04244ProcInfo, p1,p2,p3,p4);
  237.     end;
  238.  
  239.     function CallPascal14 (p1:univ SInt32; proc: UniversalProcPtr): SInt8;
  240.     begin
  241.         CallPascal14:= CallUniversalProc(proc, uppPascal14ProcInfo, p1);
  242.     end;
  243.  
  244.     function CallPascalB4 (p1:univ SInt32; proc: UniversalProcPtr): Boolean;
  245.     begin
  246.         CallPascalB4:= CallUniversalProc(proc, uppPascal14ProcInfo, p1) <> 0;
  247.     end;
  248.  
  249.     function CallPascal2(proc: UniversalProcPtr):SInt16;
  250.     begin
  251.         CallPascal2:= CallUniversalProc(proc, uppPascal2ProcInfo);
  252.     end;
  253.  
  254.     function CallPascal22(p1:univ SInt16; proc: UniversalProcPtr):SInt16;
  255.     begin
  256.         CallPascal22:= CallUniversalProc(proc, uppPascal22ProcInfo, p1);
  257.     end;
  258.  
  259.     function CallPascal24(p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  260.     begin
  261.         CallPascal24:= CallUniversalProc(proc, uppPascal24ProcInfo, p1);
  262.     end;
  263.  
  264.     function CallPascal44(p1:univ SInt32; proc: UniversalProcPtr):SInt32;
  265.     begin
  266.         CallPascal44:= CallUniversalProc(proc, uppPascal44ProcInfo, p1);
  267.     end;
  268.  
  269.     procedure CallC04(p1:univ SInt32; proc: UniversalProcPtr);
  270.         var
  271.             junk_long:longint;
  272.     begin
  273.         junk_long:= CallUniversalProc(proc, uppC04ProcInfo, p1);
  274.     end;
  275.  
  276.     function CallC24(p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  277.     begin
  278.         CallC24:= CallUniversalProc(proc, uppC24ProcInfo, p1);
  279.     end;
  280.  
  281.     function CallC244(p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  282.     begin
  283.         CallC244:= CallUniversalProc(proc, uppC244ProcInfo, p1, p2);
  284.     end;
  285.  
  286.     function CallC2444(p3,p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  287.     begin
  288.         CallC2444:= CallUniversalProc(proc, uppC2444ProcInfo, p1, p2, p3);
  289.     end;
  290.  
  291.     function CallC244444(p5,p4,p3,p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  292.     begin
  293.         CallC244444:= CallUniversalProc(proc, uppC244444ProcInfo, p1, p2, p3, p4, p5);
  294.     end;
  295.  
  296. {$ENDC}
  297.  
  298. end.
  299.  
  300. { Edit history }
  301. {13 July 96    jc        Added the 042 pattern }
  302.